-- *****************************************************************
-- CISCO-DS0BUNDLE-MIB definition
--
-- Vasmi Abidi, July 1998
--
-- Copyright (c) 1998 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- This mib was extracted from draft-ietf-trunkmib-ds0-mib-06.txt




CISCO-DS0BUNDLE-MIB DEFINITIONS ::= BEGIN 
 
IMPORTS 
        MODULE-IDENTITY, OBJECT-TYPE     FROM SNMPv2-SMI 
        MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF 
        RowStatus, TestAndIncr           FROM SNMPv2-TC
        ciscoExperiment                  FROM CISCO-SMI 
        InterfaceIndex                   FROM IF-MIB; 
 
 
ds0Bundle MODULE-IDENTITY 
        LAST-UPDATED "9805242010Z"    -- from the ietf draft
        ORGANIZATION "Cisco Systems, Inc." 
        CONTACT-INFO 
                "        Cisco Systems
                         Customer Service

              Postal: 170 W Tasman Drive
                       San Jose, CA  95134
                       USA

                 Tel: +1 800 553-NETS

              E-mail: cs-snmp@cisco.com" 
        DESCRIPTION 
                "The MIB module to describe DS0 Bundle interfaces
                objects.


                Note: This contains a subset of the MIB objects
                defined in DS0BUNDLE-MIB of
                draft-ietf-trunkmib-ds0-mib-06.txt, section 6; it does
                not include the DS0 Bonding group."

                ::= { ciscoExperiment 32 }


dsx0BundleNextIndex OBJECT-TYPE
        SYNTAX  TestAndIncr
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                "This object is used to assist the manager in
                selecting a value for dsx0BundleIndex.  Because
                this object is of syntax TestAndIncr (see the
                SNMPv2-TC document, RFC1903) it can also be used to
                avoid race conditions with multiple managers trying to
                create rows in the table. 

                If the result of the SET for dsx0BundleNextIndex is
                not success, this means the value has been changed
                from index (i.e. another manager used the value), so a
                new value is required.

                The algorithm is:
                done = false
                while done == false 
                      index = GET (dsx0BundleNextIndex.0) 
                      SET (dsx0BundleNextIndex.0=index)
                      if (set failed)
                        done = false
                      else
                        SET(dsx0BundleRowStatus.index=createAndGo) 
                        if (set failed)
                          done = false
                        else
                          done = true 
                          other error handling" 
        ::= { ds0Bundle 2 } 
 
dsx0BundleTable OBJECT-TYPE 
        SYNTAX  SEQUENCE OF Dsx0BundleEntry 
        MAX-ACCESS  not-accessible 
        STATUS  current 
        DESCRIPTION 
                "There is a row in this table for each ds0Bundle in
                the system.  This table can be used to (indirectly)
                create rows in the ifTable with ifType =
                'ds0Bundle(82)'."
                ::= { ds0Bundle 3 } 
 
dsx0BundleEntry OBJECT-TYPE 
        SYNTAX  Dsx0BundleEntry 
        MAX-ACCESS  not-accessible 
        STATUS  current 
        DESCRIPTION 
                "There is a row in this table for each ds0Bundle
                interface."
                INDEX   { dsx0BundleIndex } 
        ::= { dsx0BundleTable 1 } 
 
Dsx0BundleEntry ::= 
        SEQUENCE { 
                  dsx0BundleIndex               INTEGER, 
                  dsx0BundleIfIndex     InterfaceIndex, 
                  dsx0BundleRowStatus   RowStatus 
        } 
 
dsx0BundleIndex OBJECT-TYPE 
        SYNTAX  INTEGER (0..2147483647) 
        MAX-ACCESS  not-accessible 
        STATUS  current 
        DESCRIPTION 
                "A unique identifier for a ds0Bundle. This is not the
                same value as ifIndex. This table is not indexed by
                ifIndex because the manager has to choose the index in
                a createable row and the agent must be allowed to
                select ifIndex values."
        ::= { dsx0BundleEntry 1 } 
 
dsx0BundleIfIndex OBJECT-TYPE 
        SYNTAX  InterfaceIndex 
        MAX-ACCESS  read-only 
        STATUS  current 
        DESCRIPTION 
                "The ifIndex value the agent selected for the (new) 
                ds0Bundle interface." 
        ::= { dsx0BundleEntry 2 } 
 
dsx0BundleRowStatus OBJECT-TYPE 
        SYNTAX  RowStatus 
        MAX-ACCESS  read-create 
        STATUS  current 
        DESCRIPTION 
                "This object is used to create and delete rows in 
                this table." 
        ::= { dsx0BundleEntry 3 }

-- conformance information 
 
ds0BundleConformance OBJECT IDENTIFIER ::= { ds0Bundle 4} 
 
ds0BundleGroups      OBJECT IDENTIFIER ::= { ds0BundleConformance 1 } 
 
ds0BundleCompliances OBJECT IDENTIFIER ::= { ds0BundleConformance 2 } 
 
 
-- compliance statements 
 
ds0BundleCompliance MODULE-COMPLIANCE 
        STATUS  current 
        DESCRIPTION 
                "The compliance statement for DS0Bundle interfaces." 
        MODULE  -- this module 
        MANDATORY-GROUPS       { ds0BundleConfigGroup } 
        ::= { ds0BundleCompliances 1 } 
 
 
ds0BundleConfigGroup  OBJECT-GROUP 
        OBJECTS { dsx0BundleNextIndex, 
                  dsx0BundleIfIndex, 
                  dsx0BundleRowStatus } 
              STATUS  current 
              DESCRIPTION 
                      "A collection of objects providing the ability to 
                      create a new ds0Bundle in the ifTable." 
        ::= { ds0BundleGroups 2 } 
END